Creating new pipeline using seurat v4.0.2 available 2021.06.08

Load libraries required for Seuratv4

knitr::opts_knit$set(root.dir = "~/Desktop/10XGenomicsData/msAggr_scRNASeq/")
library(dplyr)

Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
library(Seurat)
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     
Registered S3 method overwritten by 'htmlwidgets':
  method           from         
  print.htmlwidget tools:rstudio
Attaching SeuratObject
library(patchwork)
library(ggplot2)
# library(clustree)

store session info

sink("msAggr_sct-v1.20210615")
sessionInfo()
sink()

A note about using SCTransform versus ScaleData

https://bioconductor.org/packages/3.10/workflows/vignettes/simpleSingleCell/inst/doc/batch.html#62_for_gene-based_analyses >You can also normalize and scale data for the RNA assay. There are numerous resources on this, but Aaron Lun describes why the original log-normalized values should be used for DE and visualizations of expression quite well here: > >For gene-based procedures like differential expression (DE) analyses or gene network construction, it is desirable to use the original log-expression values or counts. The corrected values are only used to obtain cell-level results such as clusters or trajectories. Batch effects are handled explicitly using blocking terms or via a meta-analysis across batches. We do not use the corrected values directly in gene-based analyses, for various reasons: > >It is usually inappropriate to perform DE analyses on batch-corrected values, due to the failure to model the uncertainty of the correction. This usually results in loss of type I error control, i.e., more false positives than expected. > >The correction does not preserve the mean-variance relationship. Applications of common DE methods like edgeR or limma are unlikely to be valid. > >Batch correction may (correctly) remove biological differences between batches in the course of mapping all cells onto a common coordinate system. Returning to the uncorrected expression values provides an opportunity for detecting such differences if they are of interest. Conversely, if the batch correction made a mistake, the use of the uncorrected expression values provides an important sanity check. > >In addition, the normalized values in SCT and integrated assays don’t necessary correspond to per-gene expression values anyway, rather containing residuals (in the case of the scale.data slot for each).

########IS SCTRANSFORM MORE ROBUST FOR DIFFERENT SEQUENCING DEPTHS??#########

Load 4 populations into single seurat object

SET SEED?????!!!!!

Set global variables

projectName <- "msAggr_sct"
jackstraw.dim <- 40
source("msAggr_AnalysisCode/read_10XGenomics_data.R")
setwd("../cellRanger/") # temporarily changing wd only works if you run the entire chunk at once
Warning: The working directory was changed to /Users/heustonef/Desktop/10XGenomicsData/cellRanger inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
data_file.list <- read_10XGenomics_data(sample.list = c("LSKm2", "CMPm2", "MEPm", "GMPm"))
object.data <-Read10X(data_file.list)
seurat.object<- CreateSeuratObject(counts = object.data, min.cells = 3, min.genes = 200, project = projectName)

Clean up to free memory

remove(object.data)

Add mitochondrial metadata and plot some basic features

seurat.object[["percent.mt"]] <- PercentageFeatureSet(seurat.object, pattern = "^mt-")
VlnPlot(seurat.object, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3, pt.size = 0, fill.by = 'orig.ident', )

plot1 <- FeatureScatter(seurat.object, feature1 = "nCount_RNA", feature2 = "percent.mt", group.by = "orig.ident", pt.size = 0.01)
plot2 <- FeatureScatter(seurat.object, feature1 = "nCount_RNA", feature2 = "nFeature_RNA", group.by = "orig.ident", pt.size = 0.01)
plot1 + plot2

remove low quality cells ** require: nFeature_RNA between 200 and 4000 (inclusive) –require: percent.mt <5–???

** In previous run it’s possible that we’ll need to limit percent.mt because of MEPm weirdness. Will have to see if the additional 2000 MEPm cells found by cellranger v6

print(paste("original object:", nrow(seurat.object@meta.data), "cells", sep = " "))
[1] "original object: 41950 cells"
seurat.object <- subset(seurat.object, 
                                                subset = nFeature_RNA >=200 & 
                                                    nFeature_RNA <= 4000
                                                )
print(paste("new object:", nrow(seurat.object@meta.data), "cells", sep = " "))
[1] "new object: 40815 cells"
seurat.object <- PercentageFeatureSet(seurat.object, pattern = '^mt-', col.name = "percent.mt")

Save base object

saveRDS(seurat.object, file = "msAggr_rawSeurat.rds")

SCTransform

As previously mentioned, SCTransform() is best for batch correction, whereas NormalizeData(), ScaleData(), and FindVariableFeatures() are best for DGE. I’m struggling to make stable clusters, so I’m jumping ahead to SCTransform().
It does appear that SCTransform() data are stored in the SCT assay slot, which does not overwrite other normalization slots. It will become the default slot once populated.

seurat.object <- SCTransform(seurat.object, 
                                                         method = "glmGamPoi", 
                                                         vars.to.regress = c("nCount_RNA", "nFeature_RNA")
                                                         ) # method = "glmGamPoi" speeds process

Tada! Now lets do some plotting and clustering!

linear dimensional reduction. Default are based on VariableFeatures, but can be changed

seurat.object <- RunPCA(seurat.object, features = VariableFeatures(object = seurat.object), verbose = FALSE)
VizDimLoadings(seurat.object, dims = 1:6, nfeatures = 10, reduction = "pca", ncol = 2)

DimPlot colored by orig.ident

DimPlot(seurat.object, reduction = "pca", group.by = "orig.ident")
source("msAggr_AnalysisCode/PercentVariance.R")
ElbowPlot(seurat.object, ndims = 50)
percent.variance(seurat.object@reductions$pca@stdev)

Variance described by dimensionality

Number of PCs describing X% of variance

tot.var <- percent.variance(seurat.object@reductions$pca@stdev, plot.var = FALSE, return.val = TRUE)
paste0("Num pcs for 80% variance:", length(which(cumsum(tot.var) <= 80)))
paste0("Num pcs for 85% variance:", length(which(cumsum(tot.var) <= 85)))
paste0("Num pcs for 90% variance:", length(which(cumsum(tot.var) <= 90)))
paste0("Num pcs for 95% variance:", length(which(cumsum(tot.var) <= 95)))

Dim33

Cover 95% variability

ndim <- 33
seurat.object <- RunUMAP(seurat.object, dims = 1:ndim)
seurat.object <- FindNeighbors(seurat.object, dims = 1:ndim)
for(x in c(0.5, 1, 1.5, 2, 2.5)){
    seurat.object <- FindClusters(seurat.object, resolution = x)
}

Plotting…

for (meta.col in colnames(seurat.object@meta.data)){
    if(grepl(pattern = ("SCT_snn_res"), x = meta.col)==TRUE){
        myplot <- DimPlot(seurat.object, 
                                            group.by = meta.col,
                                            reduction = "umap", 
                                            cols = colorRamps::primary.colors(n = length(levels(seurat.object@meta.data[[meta.col]])))
                                            ) + 
            ggtitle(paste0("msAggr sct dim31 res", gsub("SCT_snn_res", "", meta.col) ))
        plot(myplot)
    }
}
saveRDS(seurat.object, file = "msAggr_sctdim33.rds")

Evaluate cluster stability

Must ensure we have the right cluster stability, that is, cells that start in the same cluster tend to stay in the same cluster. If your data is over-clustered, cells will bounce between groups.

Following [this tutorial by Matt O.].https://towardsdatascience.com/10-tips-for-choosing-the-optimal-number-of-clusters-277e93d72d92.

Clustree

Previously my favourite has been Clustree, which gives a nice visual NB: For some reason clustree::clustree() didn’t work, whereas library(clustree) followed by clustree() did.

clustree(seurat.object, prefix = "SCT_snn_res.", node_colour = "sc3_stability") + 
    scale_color_continuous(low = 'red3', high = 'white')

Basically no stability difference compared to before.

Dim22

Cover 90% variability

ndim <- 22
seurat.object <- RunUMAP(seurat.object, dims = 1:ndim)
seurat.object <- FindNeighbors(seurat.object, dims = 1:ndim)
for(x in c(0.5, 1, 1.5, 2, 2.5)){
    seurat.object <- FindClusters(seurat.object, resolution = x)
}

Plotting…

DimPlot(seurat.object, group.by = "orig.ident", reduction = "umap")
DimPlot(seurat.object, group.by = "orig.ident", reduction = "umap")

for (meta.col in colnames(seurat.object@meta.data)){
    if(grepl(pattern = ("SCT_snn_res"), x = meta.col)==TRUE){
        myplot <- DimPlot(seurat.object, 
                                            group.by = meta.col,
                                            reduction = "umap", 
                                            cols = colorRamps::primary.colors(n = length(levels(seurat.object@meta.data[[meta.col]])))
                                            ) + 
            ggtitle(paste0("msAggr sct dim", ndim, "res", gsub("SCT_snn_res", "", meta.col) ))
        plot(myplot)
    }
}

fav.genes <- c("Gata1", "Gata2", "Pf4", "Dntt", "Mpo", "Meis1", "Irf8", "Elane", "Fli1", "Zfpm1", "proc")
FeaturePlot(seurat.object, features = fav.genes, ncol = 3)
Warning in FetchData(object = object, vars = c(dims, "ident", features),  :
  The following requested variables were not found: proc

Evaluate cluster stability

Must ensure we have the right cluster stability, that is, cells that start in the same cluster tend to stay in the same cluster. If your data is over-clustered, cells will bounce between groups.

Following [this tutorial by Matt O.].https://towardsdatascience.com/10-tips-for-choosing-the-optimal-number-of-clusters-277e93d72d92.

Clustree

Previously my favourite has been Clustree, which gives a nice visual NB: For some reason clustree::clustree() didn’t work, whereas library(clustree) followed by clustree() did.

clustree(seurat.object, prefix = "SCT_snn_res.", node_colour = "sc3_stability") + 
    scale_color_continuous(low = 'red3', high = 'white')

Hard to tell if dim33 or dim22 is better, but if feels like dim22 has less cross-over between res0.5 and res1.0. Will continue at dim22, and see how things change between res0.5 and res1.0

clustree(seurat.object, prefix = "SCT_snn_res.", node_colour = "sc3_stability") + 
    scale_color_continuous(low = 'red3', high = 'white')

MitoC in

# Number of filtered cells left in each pop
sapply(c("LSKm2", "CMPm2", "MEPm", "GMPm"), function(x) (c(nrow(seurat.object@meta.data[seurat.object@meta.data$orig.ident == x,]))))
LSKm2 CMPm2  MEPm  GMPm 
11004 12342  8791  8678 

Why are clusters so unstable?

Differences could include: * cells in each population (cellranger v6 includes more cells than cellranger v1, especially in MEP) * –dimensionality is incorrect– * ScaleData didnt account for regression factors (e.g., “nCounts_RNA” or “nFeatures_RNA”) * Incorrect normalization/scaling method * –Clustering is too strict or not strict enough– * neighborhood analysis used wrong parameters * Should include mitoC filter (there’s a chunk of MEP w/ mitoC @ ~40%) * –SCTransform accounts better for sources of variability–

Regress out cell cycle

One thing I’ve probably done in the past is regress out cell cycle factors. Did not do that here. Repeat analysis but include cell cycle regression.
Cell cycle scoring comes after RunPCA()

Step 1: load in raw object

for (x in c("LSKm2", "CMPm2", "MEPm", "GMPm")){
    h = hist(seurat.object@meta.data[seurat.object@meta.data$orig.ident == x, 'percent.mt'], breaks = 30, plot = FALSE)
    h$density = h$counts/sum(h$counts)*100
    plot(h,freq=FALSE, main =  paste(x, "percent mitoC"), xlab = "percent mitoC", ylab = "Frequency")
}

Since SCTransform() is best for different correcting different sequencing depths, going to stick with that

The Cell Cycle Regression Vignette says to do NormalizeData(), FindVariableFeatures(), ScaleData(), RunPCA(), CellCycleScoring(), then RunPCA() with s.genes and g2m.genes. It seems to be more complicated with SCTransform() because you don’t want to normalize normalized data, but you need normalized data to properly run CellCycleScoring(). Found discussion board and this is the answer that makes the most sense to me

seurat.object <- readRDS("msAggr_rawSeurat.rds")

so let’s try this

seurat.object <- SCTransform(seurat.object, assay = 'RNA', new.assay.name = "SCT", method = "glmGamPoi", vars.to.regress = c("nFeature_RNA", "nCount_RNA"))

Cell cycle scoring

seurat.object <- SCTransform(seurat.object, assay = 'RNA', new.assay.name = "SCT", method = "glmGamPoi", vars.to.regress = c("nFeature_RNA", "nCount_RNA"))
Calculating cell attributes from input UMI matrix: log_umi
Variance stabilizing transformation of count matrix of size 17709 by 40815
Model formula is y ~ log_umi
Get Negative Binomial regression parameters per gene
Using 2000 genes, 5000 cells

  |                                                                                                                                                                                                                       
  |                                                                                                                                                                                                                 |   0%
  |                                                                                                                                                                                                                       
  |====================================================                                                                                                                                                             |  25%
  |                                                                                                                                                                                                                       
  |========================================================================================================                                                                                                         |  50%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================================                                                    |  75%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================================================================| 100%
Found 108 outliers - those will be ignored in fitting/regularization step

Second step: Get residuals using fitted parameters for 17709 genes

  |                                                                                                                                                                                                                       
  |                                                                                                                                                                                                                 |   0%
  |                                                                                                                                                                                                                       
  |======                                                                                                                                                                                                           |   3%
  |                                                                                                                                                                                                                       
  |============                                                                                                                                                                                                     |   6%
  |                                                                                                                                                                                                                       
  |=================                                                                                                                                                                                                |   8%
  |                                                                                                                                                                                                                       
  |=======================                                                                                                                                                                                          |  11%
  |                                                                                                                                                                                                                       
  |=============================                                                                                                                                                                                    |  14%
  |                                                                                                                                                                                                                       
  |===================================                                                                                                                                                                              |  17%
  |                                                                                                                                                                                                                       
  |=========================================                                                                                                                                                                        |  19%
  |                                                                                                                                                                                                                       
  |==============================================                                                                                                                                                                   |  22%
  |                                                                                                                                                                                                                       
  |====================================================                                                                                                                                                             |  25%
  |                                                                                                                                                                                                                       
  |==========================================================                                                                                                                                                       |  28%
  |                                                                                                                                                                                                                       
  |================================================================                                                                                                                                                 |  31%
  |                                                                                                                                                                                                                       
  |======================================================================                                                                                                                                           |  33%
  |                                                                                                                                                                                                                       
  |===========================================================================                                                                                                                                      |  36%
  |                                                                                                                                                                                                                       
  |=================================================================================                                                                                                                                |  39%
  |                                                                                                                                                                                                                       
  |=======================================================================================                                                                                                                          |  42%
  |                                                                                                                                                                                                                       
  |=============================================================================================                                                                                                                    |  44%
  |                                                                                                                                                                                                                       
  |===================================================================================================                                                                                                              |  47%
  |                                                                                                                                                                                                                       
  |========================================================================================================                                                                                                         |  50%
  |                                                                                                                                                                                                                       
  |==============================================================================================================                                                                                                   |  53%
  |                                                                                                                                                                                                                       
  |====================================================================================================================                                                                                             |  56%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================                                                                                       |  58%
  |                                                                                                                                                                                                                       
  |================================================================================================================================                                                                                 |  61%
  |                                                                                                                                                                                                                       
  |======================================================================================================================================                                                                           |  64%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================                                                                      |  67%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================                                                                |  69%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================================================                                                          |  72%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================================                                                    |  75%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================================================                                              |  78%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================================================                                         |  81%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================================================================                                   |  83%
  |                                                                                                                                                                                                                       
  |====================================================================================================================================================================================                             |  86%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================================================================                       |  89%
  |                                                                                                                                                                                                                       
  |================================================================================================================================================================================================                 |  92%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================================================================================            |  94%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================================================================================      |  97%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================================================================| 100%
Computing corrected count matrix for 17709 genes

  |                                                                                                                                                                                                                       
  |                                                                                                                                                                                                                 |   0%
  |                                                                                                                                                                                                                       
  |======                                                                                                                                                                                                           |   3%
  |                                                                                                                                                                                                                       
  |============                                                                                                                                                                                                     |   6%
  |                                                                                                                                                                                                                       
  |=================                                                                                                                                                                                                |   8%
  |                                                                                                                                                                                                                       
  |=======================                                                                                                                                                                                          |  11%
  |                                                                                                                                                                                                                       
  |=============================                                                                                                                                                                                    |  14%
  |                                                                                                                                                                                                                       
  |===================================                                                                                                                                                                              |  17%
  |                                                                                                                                                                                                                       
  |=========================================                                                                                                                                                                        |  19%
  |                                                                                                                                                                                                                       
  |==============================================                                                                                                                                                                   |  22%
  |                                                                                                                                                                                                                       
  |====================================================                                                                                                                                                             |  25%
  |                                                                                                                                                                                                                       
  |==========================================================                                                                                                                                                       |  28%
  |                                                                                                                                                                                                                       
  |================================================================                                                                                                                                                 |  31%
  |                                                                                                                                                                                                                       
  |======================================================================                                                                                                                                           |  33%
  |                                                                                                                                                                                                                       
  |===========================================================================                                                                                                                                      |  36%
  |                                                                                                                                                                                                                       
  |=================================================================================                                                                                                                                |  39%
  |                                                                                                                                                                                                                       
  |=======================================================================================                                                                                                                          |  42%
  |                                                                                                                                                                                                                       
  |=============================================================================================                                                                                                                    |  44%
  |                                                                                                                                                                                                                       
  |===================================================================================================                                                                                                              |  47%
  |                                                                                                                                                                                                                       
  |========================================================================================================                                                                                                         |  50%
  |                                                                                                                                                                                                                       
  |==============================================================================================================                                                                                                   |  53%
  |                                                                                                                                                                                                                       
  |====================================================================================================================                                                                                             |  56%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================                                                                                       |  58%
  |                                                                                                                                                                                                                       
  |================================================================================================================================                                                                                 |  61%
  |                                                                                                                                                                                                                       
  |======================================================================================================================================                                                                           |  64%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================                                                                      |  67%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================                                                                |  69%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================================================                                                          |  72%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================================                                                    |  75%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================================================                                              |  78%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================================================                                         |  81%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================================================================                                   |  83%
  |                                                                                                                                                                                                                       
  |====================================================================================================================================================================================                             |  86%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================================================================                       |  89%
  |                                                                                                                                                                                                                       
  |================================================================================================================================================================================================                 |  92%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================================================================================            |  94%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================================================================================      |  97%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================================================================| 100%
Calculating gene attributes
Wall clock passed: Time difference of 2.586646 mins
Determine variable features
Place corrected count matrix in counts slot
Regressing out nFeature_RNA, nCount_RNA

  |                                                                                                                                                                                                                       
  |                                                                                                                                                                                                                 |   0%
  |                                                                                                                                                                                                                       
  |=                                                                                                                                                                                                                |   0%
  |                                                                                                                                                                                                                       
  |=                                                                                                                                                                                                                |   1%
  |                                                                                                                                                                                                                       
  |==                                                                                                                                                                                                               |   1%
  |                                                                                                                                                                                                                       
  |===                                                                                                                                                                                                              |   1%
  |                                                                                                                                                                                                                       
  |===                                                                                                                                                                                                              |   2%
  |                                                                                                                                                                                                                       
  |====                                                                                                                                                                                                             |   2%
  |                                                                                                                                                                                                                       
  |=====                                                                                                                                                                                                            |   2%
  |                                                                                                                                                                                                                       
  |=====                                                                                                                                                                                                            |   3%
  |                                                                                                                                                                                                                       
  |======                                                                                                                                                                                                           |   3%
  |                                                                                                                                                                                                                       
  |=======                                                                                                                                                                                                          |   3%
  |                                                                                                                                                                                                                       
  |=======                                                                                                                                                                                                          |   4%
  |                                                                                                                                                                                                                       
  |========                                                                                                                                                                                                         |   4%
  |                                                                                                                                                                                                                       
  |=========                                                                                                                                                                                                        |   4%
  |                                                                                                                                                                                                                       
  |=========                                                                                                                                                                                                        |   5%
  |                                                                                                                                                                                                                       
  |==========                                                                                                                                                                                                       |   5%
  |                                                                                                                                                                                                                       
  |===========                                                                                                                                                                                                      |   5%
  |                                                                                                                                                                                                                       
  |===========                                                                                                                                                                                                      |   6%
  |                                                                                                                                                                                                                       
  |============                                                                                                                                                                                                     |   6%
  |                                                                                                                                                                                                                       
  |=============                                                                                                                                                                                                    |   6%
  |                                                                                                                                                                                                                       
  |==============                                                                                                                                                                                                   |   6%
  |                                                                                                                                                                                                                       
  |==============                                                                                                                                                                                                   |   7%
  |                                                                                                                                                                                                                       
  |===============                                                                                                                                                                                                  |   7%
  |                                                                                                                                                                                                                       
  |================                                                                                                                                                                                                 |   7%
  |                                                                                                                                                                                                                       
  |================                                                                                                                                                                                                 |   8%
  |                                                                                                                                                                                                                       
  |=================                                                                                                                                                                                                |   8%
  |                                                                                                                                                                                                                       
  |==================                                                                                                                                                                                               |   8%
  |                                                                                                                                                                                                                       
  |==================                                                                                                                                                                                               |   9%
  |                                                                                                                                                                                                                       
  |===================                                                                                                                                                                                              |   9%
  |                                                                                                                                                                                                                       
  |====================                                                                                                                                                                                             |   9%
  |                                                                                                                                                                                                                       
  |====================                                                                                                                                                                                             |  10%
  |                                                                                                                                                                                                                       
  |=====================                                                                                                                                                                                            |  10%
  |                                                                                                                                                                                                                       
  |======================                                                                                                                                                                                           |  10%
  |                                                                                                                                                                                                                       
  |======================                                                                                                                                                                                           |  11%
  |                                                                                                                                                                                                                       
  |=======================                                                                                                                                                                                          |  11%
  |                                                                                                                                                                                                                       
  |========================                                                                                                                                                                                         |  11%
  |                                                                                                                                                                                                                       
  |========================                                                                                                                                                                                         |  12%
  |                                                                                                                                                                                                                       
  |=========================                                                                                                                                                                                        |  12%
  |                                                                                                                                                                                                                       
  |==========================                                                                                                                                                                                       |  12%
  |                                                                                                                                                                                                                       
  |==========================                                                                                                                                                                                       |  13%
  |                                                                                                                                                                                                                       
  |===========================                                                                                                                                                                                      |  13%
  |                                                                                                                                                                                                                       
  |============================                                                                                                                                                                                     |  13%
  |                                                                                                                                                                                                                       
  |============================                                                                                                                                                                                     |  14%
  |                                                                                                                                                                                                                       
  |=============================                                                                                                                                                                                    |  14%
  |                                                                                                                                                                                                                       
  |==============================                                                                                                                                                                                   |  14%
  |                                                                                                                                                                                                                       
  |==============================                                                                                                                                                                                   |  15%
  |                                                                                                                                                                                                                       
  |===============================                                                                                                                                                                                  |  15%
  |                                                                                                                                                                                                                       
  |================================                                                                                                                                                                                 |  15%
  |                                                                                                                                                                                                                       
  |================================                                                                                                                                                                                 |  16%
  |                                                                                                                                                                                                                       
  |=================================                                                                                                                                                                                |  16%
  |                                                                                                                                                                                                                       
  |==================================                                                                                                                                                                               |  16%
  |                                                                                                                                                                                                                       
  |===================================                                                                                                                                                                              |  17%
  |                                                                                                                                                                                                                       
  |====================================                                                                                                                                                                             |  17%
  |                                                                                                                                                                                                                       
  |=====================================                                                                                                                                                                            |  17%
  |                                                                                                                                                                                                                       
  |=====================================                                                                                                                                                                            |  18%
  |                                                                                                                                                                                                                       
  |======================================                                                                                                                                                                           |  18%
  |                                                                                                                                                                                                                       
  |=======================================                                                                                                                                                                          |  18%
  |                                                                                                                                                                                                                       
  |=======================================                                                                                                                                                                          |  19%
  |                                                                                                                                                                                                                       
  |========================================                                                                                                                                                                         |  19%
  |                                                                                                                                                                                                                       
  |=========================================                                                                                                                                                                        |  19%
  |                                                                                                                                                                                                                       
  |=========================================                                                                                                                                                                        |  20%
  |                                                                                                                                                                                                                       
  |==========================================                                                                                                                                                                       |  20%
  |                                                                                                                                                                                                                       
  |===========================================                                                                                                                                                                      |  20%
  |                                                                                                                                                                                                                       
  |===========================================                                                                                                                                                                      |  21%
  |                                                                                                                                                                                                                       
  |============================================                                                                                                                                                                     |  21%
  |                                                                                                                                                                                                                       
  |=============================================                                                                                                                                                                    |  21%
  |                                                                                                                                                                                                                       
  |=============================================                                                                                                                                                                    |  22%
  |                                                                                                                                                                                                                       
  |==============================================                                                                                                                                                                   |  22%
  |                                                                                                                                                                                                                       
  |===============================================                                                                                                                                                                  |  22%
  |                                                                                                                                                                                                                       
  |===============================================                                                                                                                                                                  |  23%
  |                                                                                                                                                                                                                       
  |================================================                                                                                                                                                                 |  23%
  |                                                                                                                                                                                                                       
  |=================================================                                                                                                                                                                |  23%
  |                                                                                                                                                                                                                       
  |=================================================                                                                                                                                                                |  24%
  |                                                                                                                                                                                                                       
  |==================================================                                                                                                                                                               |  24%
  |                                                                                                                                                                                                                       
  |===================================================                                                                                                                                                              |  24%
  |                                                                                                                                                                                                                       
  |===================================================                                                                                                                                                              |  25%
  |                                                                                                                                                                                                                       
  |====================================================                                                                                                                                                             |  25%
  |                                                                                                                                                                                                                       
  |=====================================================                                                                                                                                                            |  25%
  |                                                                                                                                                                                                                       
  |=====================================================                                                                                                                                                            |  26%
  |                                                                                                                                                                                                                       
  |======================================================                                                                                                                                                           |  26%
  |                                                                                                                                                                                                                       
  |=======================================================                                                                                                                                                          |  26%
  |                                                                                                                                                                                                                       
  |=======================================================                                                                                                                                                          |  27%
  |                                                                                                                                                                                                                       
  |========================================================                                                                                                                                                         |  27%
  |                                                                                                                                                                                                                       
  |=========================================================                                                                                                                                                        |  27%
  |                                                                                                                                                                                                                       
  |=========================================================                                                                                                                                                        |  28%
  |                                                                                                                                                                                                                       
  |==========================================================                                                                                                                                                       |  28%
  |                                                                                                                                                                                                                       
  |===========================================================                                                                                                                                                      |  28%
  |                                                                                                                                                                                                                       
  |============================================================                                                                                                                                                     |  28%
  |                                                                                                                                                                                                                       
  |============================================================                                                                                                                                                     |  29%
  |                                                                                                                                                                                                                       
  |=============================================================                                                                                                                                                    |  29%
  |                                                                                                                                                                                                                       
  |==============================================================                                                                                                                                                   |  29%
  |                                                                                                                                                                                                                       
  |==============================================================                                                                                                                                                   |  30%
  |                                                                                                                                                                                                                       
  |===============================================================                                                                                                                                                  |  30%
  |                                                                                                                                                                                                                       
  |================================================================                                                                                                                                                 |  30%
  |                                                                                                                                                                                                                       
  |================================================================                                                                                                                                                 |  31%
  |                                                                                                                                                                                                                       
  |=================================================================                                                                                                                                                |  31%
  |                                                                                                                                                                                                                       
  |==================================================================                                                                                                                                               |  31%
  |                                                                                                                                                                                                                       
  |==================================================================                                                                                                                                               |  32%
  |                                                                                                                                                                                                                       
  |===================================================================                                                                                                                                              |  32%
  |                                                                                                                                                                                                                       
  |====================================================================                                                                                                                                             |  32%
  |                                                                                                                                                                                                                       
  |====================================================================                                                                                                                                             |  33%
  |                                                                                                                                                                                                                       
  |=====================================================================                                                                                                                                            |  33%
  |                                                                                                                                                                                                                       
  |======================================================================                                                                                                                                           |  33%
  |                                                                                                                                                                                                                       
  |======================================================================                                                                                                                                           |  34%
  |                                                                                                                                                                                                                       
  |=======================================================================                                                                                                                                          |  34%
  |                                                                                                                                                                                                                       
  |========================================================================                                                                                                                                         |  34%
  |                                                                                                                                                                                                                       
  |========================================================================                                                                                                                                         |  35%
  |                                                                                                                                                                                                                       
  |=========================================================================                                                                                                                                        |  35%
  |                                                                                                                                                                                                                       
  |==========================================================================                                                                                                                                       |  35%
  |                                                                                                                                                                                                                       
  |==========================================================================                                                                                                                                       |  36%
  |                                                                                                                                                                                                                       
  |===========================================================================                                                                                                                                      |  36%
  |                                                                                                                                                                                                                       
  |============================================================================                                                                                                                                     |  36%
  |                                                                                                                                                                                                                       
  |============================================================================                                                                                                                                     |  37%
  |                                                                                                                                                                                                                       
  |=============================================================================                                                                                                                                    |  37%
  |                                                                                                                                                                                                                       
  |==============================================================================                                                                                                                                   |  37%
  |                                                                                                                                                                                                                       
  |==============================================================================                                                                                                                                   |  38%
  |                                                                                                                                                                                                                       
  |===============================================================================                                                                                                                                  |  38%
  |                                                                                                                                                                                                                       
  |================================================================================                                                                                                                                 |  38%
  |                                                                                                                                                                                                                       
  |=================================================================================                                                                                                                                |  39%
  |                                                                                                                                                                                                                       
  |==================================================================================                                                                                                                               |  39%
  |                                                                                                                                                                                                                       
  |===================================================================================                                                                                                                              |  40%
  |                                                                                                                                                                                                                       
  |====================================================================================                                                                                                                             |  40%
  |                                                                                                                                                                                                                       
  |=====================================================================================                                                                                                                            |  40%
  |                                                                                                                                                                                                                       
  |=====================================================================================                                                                                                                            |  41%
  |                                                                                                                                                                                                                       
  |======================================================================================                                                                                                                           |  41%
  |                                                                                                                                                                                                                       
  |=======================================================================================                                                                                                                          |  41%
  |                                                                                                                                                                                                                       
  |=======================================================================================                                                                                                                          |  42%
  |                                                                                                                                                                                                                       
  |========================================================================================                                                                                                                         |  42%
  |                                                                                                                                                                                                                       
  |=========================================================================================                                                                                                                        |  42%
  |                                                                                                                                                                                                                       
  |=========================================================================================                                                                                                                        |  43%
  |                                                                                                                                                                                                                       
  |==========================================================================================                                                                                                                       |  43%
  |                                                                                                                                                                                                                       
  |===========================================================================================                                                                                                                      |  43%
  |                                                                                                                                                                                                                       
  |===========================================================================================                                                                                                                      |  44%
  |                                                                                                                                                                                                                       
  |============================================================================================                                                                                                                     |  44%
  |                                                                                                                                                                                                                       
  |=============================================================================================                                                                                                                    |  44%
  |                                                                                                                                                                                                                       
  |=============================================================================================                                                                                                                    |  45%
  |                                                                                                                                                                                                                       
  |==============================================================================================                                                                                                                   |  45%
  |                                                                                                                                                                                                                       
  |===============================================================================================                                                                                                                  |  45%
  |                                                                                                                                                                                                                       
  |===============================================================================================                                                                                                                  |  46%
  |                                                                                                                                                                                                                       
  |================================================================================================                                                                                                                 |  46%
  |                                                                                                                                                                                                                       
  |=================================================================================================                                                                                                                |  46%
  |                                                                                                                                                                                                                       
  |=================================================================================================                                                                                                                |  47%
  |                                                                                                                                                                                                                       
  |==================================================================================================                                                                                                               |  47%
  |                                                                                                                                                                                                                       
  |===================================================================================================                                                                                                              |  47%
  |                                                                                                                                                                                                                       
  |===================================================================================================                                                                                                              |  48%
  |                                                                                                                                                                                                                       
  |====================================================================================================                                                                                                             |  48%
  |                                                                                                                                                                                                                       
  |=====================================================================================================                                                                                                            |  48%
  |                                                                                                                                                                                                                       
  |=====================================================================================================                                                                                                            |  49%
  |                                                                                                                                                                                                                       
  |======================================================================================================                                                                                                           |  49%
  |                                                                                                                                                                                                                       
  |=======================================================================================================                                                                                                          |  49%
  |                                                                                                                                                                                                                       
  |=======================================================================================================                                                                                                          |  50%
  |                                                                                                                                                                                                                       
  |========================================================================================================                                                                                                         |  50%
  |                                                                                                                                                                                                                       
  |=========================================================================================================                                                                                                        |  50%
  |                                                                                                                                                                                                                       
  |==========================================================================================================                                                                                                       |  50%
  |                                                                                                                                                                                                                       
  |==========================================================================================================                                                                                                       |  51%
  |                                                                                                                                                                                                                       
  |===========================================================================================================                                                                                                      |  51%
  |                                                                                                                                                                                                                       
  |============================================================================================================                                                                                                     |  51%
  |                                                                                                                                                                                                                       
  |============================================================================================================                                                                                                     |  52%
  |                                                                                                                                                                                                                       
  |=============================================================================================================                                                                                                    |  52%
  |                                                                                                                                                                                                                       
  |==============================================================================================================                                                                                                   |  52%
  |                                                                                                                                                                                                                       
  |==============================================================================================================                                                                                                   |  53%
  |                                                                                                                                                                                                                       
  |===============================================================================================================                                                                                                  |  53%
  |                                                                                                                                                                                                                       
  |================================================================================================================                                                                                                 |  53%
  |                                                                                                                                                                                                                       
  |================================================================================================================                                                                                                 |  54%
  |                                                                                                                                                                                                                       
  |=================================================================================================================                                                                                                |  54%
  |                                                                                                                                                                                                                       
  |==================================================================================================================                                                                                               |  54%
  |                                                                                                                                                                                                                       
  |==================================================================================================================                                                                                               |  55%
  |                                                                                                                                                                                                                       
  |===================================================================================================================                                                                                              |  55%
  |                                                                                                                                                                                                                       
  |====================================================================================================================                                                                                             |  55%
  |                                                                                                                                                                                                                       
  |====================================================================================================================                                                                                             |  56%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================                                                                                            |  56%
  |                                                                                                                                                                                                                       
  |======================================================================================================================                                                                                           |  56%
  |                                                                                                                                                                                                                       
  |======================================================================================================================                                                                                           |  57%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================                                                                                          |  57%
  |                                                                                                                                                                                                                       
  |========================================================================================================================                                                                                         |  57%
  |                                                                                                                                                                                                                       
  |========================================================================================================================                                                                                         |  58%
  |                                                                                                                                                                                                                       
  |=========================================================================================================================                                                                                        |  58%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================                                                                                       |  58%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================                                                                                       |  59%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================                                                                                      |  59%
  |                                                                                                                                                                                                                       
  |============================================================================================================================                                                                                     |  59%
  |                                                                                                                                                                                                                       
  |============================================================================================================================                                                                                     |  60%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================                                                                                    |  60%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================                                                                                   |  60%
  |                                                                                                                                                                                                                       
  |===============================================================================================================================                                                                                  |  61%
  |                                                                                                                                                                                                                       
  |================================================================================================================================                                                                                 |  61%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================                                                                                |  62%
  |                                                                                                                                                                                                                       
  |==================================================================================================================================                                                                               |  62%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================                                                                              |  62%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================                                                                              |  63%
  |                                                                                                                                                                                                                       
  |====================================================================================================================================                                                                             |  63%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================                                                                            |  63%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================                                                                            |  64%
  |                                                                                                                                                                                                                       
  |======================================================================================================================================                                                                           |  64%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================================                                                                          |  64%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================================                                                                          |  65%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================                                                                         |  65%
  |                                                                                                                                                                                                                       
  |=========================================================================================================================================                                                                        |  65%
  |                                                                                                                                                                                                                       
  |=========================================================================================================================================                                                                        |  66%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================                                                                       |  66%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================                                                                      |  66%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================                                                                      |  67%
  |                                                                                                                                                                                                                       
  |============================================================================================================================================                                                                     |  67%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================                                                                    |  67%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================                                                                    |  68%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================================                                                                   |  68%
  |                                                                                                                                                                                                                       
  |===============================================================================================================================================                                                                  |  68%
  |                                                                                                                                                                                                                       
  |===============================================================================================================================================                                                                  |  69%
  |                                                                                                                                                                                                                       
  |================================================================================================================================================                                                                 |  69%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================                                                                |  69%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================                                                                |  70%
  |                                                                                                                                                                                                                       
  |==================================================================================================================================================                                                               |  70%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================================                                                              |  70%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================================                                                              |  71%
  |                                                                                                                                                                                                                       
  |====================================================================================================================================================                                                             |  71%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================================                                                            |  71%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================================                                                            |  72%
  |                                                                                                                                                                                                                       
  |======================================================================================================================================================                                                           |  72%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================================================                                                          |  72%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================================                                                         |  72%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================================                                                         |  73%
  |                                                                                                                                                                                                                       
  |=========================================================================================================================================================                                                        |  73%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================================                                                       |  73%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================================                                                       |  74%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================================                                                      |  74%
  |                                                                                                                                                                                                                       
  |============================================================================================================================================================                                                     |  74%
  |                                                                                                                                                                                                                       
  |============================================================================================================================================================                                                     |  75%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================================                                                    |  75%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================================================                                                   |  75%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================================================                                                   |  76%
  |                                                                                                                                                                                                                       
  |===============================================================================================================================================================                                                  |  76%
  |                                                                                                                                                                                                                       
  |================================================================================================================================================================                                                 |  76%
  |                                                                                                                                                                                                                       
  |================================================================================================================================================================                                                 |  77%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================                                                |  77%
  |                                                                                                                                                                                                                       
  |==================================================================================================================================================================                                               |  77%
  |                                                                                                                                                                                                                       
  |==================================================================================================================================================================                                               |  78%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================================================                                              |  78%
  |                                                                                                                                                                                                                       
  |====================================================================================================================================================================                                             |  78%
  |                                                                                                                                                                                                                       
  |====================================================================================================================================================================                                             |  79%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================================================                                            |  79%
  |                                                                                                                                                                                                                       
  |======================================================================================================================================================================                                           |  79%
  |                                                                                                                                                                                                                       
  |======================================================================================================================================================================                                           |  80%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================================================================                                          |  80%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================================================                                         |  80%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================================================                                         |  81%
  |                                                                                                                                                                                                                       
  |=========================================================================================================================================================================                                        |  81%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================================================                                       |  81%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================================================                                       |  82%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================================================                                      |  82%
  |                                                                                                                                                                                                                       
  |============================================================================================================================================================================                                     |  82%
  |                                                                                                                                                                                                                       
  |============================================================================================================================================================================                                     |  83%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================================================                                    |  83%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================================================================                                   |  83%
  |                                                                                                                                                                                                                       
  |===============================================================================================================================================================================                                  |  84%
  |                                                                                                                                                                                                                       
  |================================================================================================================================================================================                                 |  84%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================================                                |  84%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================================                                |  85%
  |                                                                                                                                                                                                                       
  |==================================================================================================================================================================================                               |  85%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================================================================                              |  85%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================================================================                              |  86%
  |                                                                                                                                                                                                                       
  |====================================================================================================================================================================================                             |  86%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================================================================                            |  86%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================================================================                            |  87%
  |                                                                                                                                                                                                                       
  |======================================================================================================================================================================================                           |  87%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================================================================================                          |  87%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================================================================================                          |  88%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================================================================                         |  88%
  |                                                                                                                                                                                                                       
  |=========================================================================================================================================================================================                        |  88%
  |                                                                                                                                                                                                                       
  |=========================================================================================================================================================================================                        |  89%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================================================================                       |  89%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================================================================                      |  89%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================================================================                      |  90%
  |                                                                                                                                                                                                                       
  |============================================================================================================================================================================================                     |  90%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================================================================                    |  90%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================================================================                    |  91%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================================================================================                   |  91%
  |                                                                                                                                                                                                                       
  |===============================================================================================================================================================================================                  |  91%
  |                                                                                                                                                                                                                       
  |===============================================================================================================================================================================================                  |  92%
  |                                                                                                                                                                                                                       
  |================================================================================================================================================================================================                 |  92%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================================================                |  92%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================================================                |  93%
  |                                                                                                                                                                                                                       
  |==================================================================================================================================================================================================               |  93%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================================================================================              |  93%
  |                                                                                                                                                                                                                       
  |===================================================================================================================================================================================================              |  94%
  |                                                                                                                                                                                                                       
  |====================================================================================================================================================================================================             |  94%
  |                                                                                                                                                                                                                       
  |=====================================================================================================================================================================================================            |  94%
  |                                                                                                                                                                                                                       
  |======================================================================================================================================================================================================           |  94%
  |                                                                                                                                                                                                                       
  |======================================================================================================================================================================================================           |  95%
  |                                                                                                                                                                                                                       
  |=======================================================================================================================================================================================================          |  95%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================================================================================         |  95%
  |                                                                                                                                                                                                                       
  |========================================================================================================================================================================================================         |  96%
  |                                                                                                                                                                                                                       
  |=========================================================================================================================================================================================================        |  96%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================================================================================       |  96%
  |                                                                                                                                                                                                                       
  |==========================================================================================================================================================================================================       |  97%
  |                                                                                                                                                                                                                       
  |===========================================================================================================================================================================================================      |  97%
  |                                                                                                                                                                                                                       
  |============================================================================================================================================================================================================     |  97%
  |                                                                                                                                                                                                                       
  |============================================================================================================================================================================================================     |  98%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================================================================================    |  98%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================================================================================================   |  98%
  |                                                                                                                                                                                                                       
  |==============================================================================================================================================================================================================   |  99%
  |                                                                                                                                                                                                                       
  |===============================================================================================================================================================================================================  |  99%
  |                                                                                                                                                                                                                       
  |================================================================================================================================================================================================================ |  99%
  |                                                                                                                                                                                                                       
  |================================================================================================================================================================================================================ | 100%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================================================================| 100%
Centering data matrix

  |                                                                                                                                                                                                                       
  |                                                                                                                                                                                                                 |   0%
  |                                                                                                                                                                                                                       
  |====================================================                                                                                                                                                             |  25%
  |                                                                                                                                                                                                                       
  |========================================================================================================                                                                                                         |  50%
  |                                                                                                                                                                                                                       
  |=============================================================================================================================================================                                                    |  75%
  |                                                                                                                                                                                                                       
  |=================================================================================================================================================================================================================| 100%
Set default assay to SCT
LS0tCnRpdGxlOiAibXNBZ2dyX3NjdHJhbnNmb3JtLXYxIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpDcmVhdGluZyBuZXcgcGlwZWxpbmUgdXNpbmcgc2V1cmF0IHY0LjAuMiBhdmFpbGFibGUgMjAyMS4wNi4wOAoKTG9hZCBsaWJyYXJpZXMgcmVxdWlyZWQgZm9yIFNldXJhdHY0CgpgYGB7ciBzZXR1cH0Ka25pdHI6Om9wdHNfa25pdCRzZXQocm9vdC5kaXIgPSAifi9EZXNrdG9wLzEwWEdlbm9taWNzRGF0YS9tc0FnZ3Jfc2NSTkFTZXEvIikKbGlicmFyeShkcGx5cikKbGlicmFyeShTZXVyYXQpCmxpYnJhcnkocGF0Y2h3b3JrKQpsaWJyYXJ5KGdncGxvdDIpCiMgbGlicmFyeShjbHVzdHJlZSkKYGBgCnN0b3JlIHNlc3Npb24gaW5mbwpgYGB7cn0Kc2luaygibXNBZ2dyX3NjdC12MS4yMDIxMDYxNSIpCnNlc3Npb25JbmZvKCkKc2luaygpCmBgYAoKIyBBIG5vdGUgYWJvdXQgdXNpbmcgU0NUcmFuc2Zvcm0gdmVyc3VzIGBTY2FsZURhdGFgCmh0dHBzOi8vYmlvY29uZHVjdG9yLm9yZy9wYWNrYWdlcy8zLjEwL3dvcmtmbG93cy92aWduZXR0ZXMvc2ltcGxlU2luZ2xlQ2VsbC9pbnN0L2RvYy9iYXRjaC5odG1sIzYyX2Zvcl9nZW5lLWJhc2VkX2FuYWx5c2VzCj5Zb3UgY2FuIGFsc28gbm9ybWFsaXplIGFuZCBzY2FsZSBkYXRhIGZvciB0aGUgUk5BIGFzc2F5LiBUaGVyZSBhcmUgbnVtZXJvdXMgcmVzb3VyY2VzIG9uIHRoaXMsIGJ1dCBBYXJvbiBMdW4gZGVzY3JpYmVzIHdoeSB0aGUgb3JpZ2luYWwgbG9nLW5vcm1hbGl6ZWQgdmFsdWVzIHNob3VsZCBiZSB1c2VkIGZvciBERSBhbmQgdmlzdWFsaXphdGlvbnMgb2YgZXhwcmVzc2lvbiBxdWl0ZSB3ZWxsIGhlcmU6Cj4KPkZvciBnZW5lLWJhc2VkIHByb2NlZHVyZXMgbGlrZSBkaWZmZXJlbnRpYWwgZXhwcmVzc2lvbiAoREUpIGFuYWx5c2VzIG9yIGdlbmUgbmV0d29yayBjb25zdHJ1Y3Rpb24sIGl0IGlzIGRlc2lyYWJsZSB0byB1c2UgdGhlIG9yaWdpbmFsIGxvZy1leHByZXNzaW9uIHZhbHVlcyBvciBjb3VudHMuIFRoZSBjb3JyZWN0ZWQgdmFsdWVzIGFyZSBvbmx5IHVzZWQgdG8gb2J0YWluIGNlbGwtbGV2ZWwgcmVzdWx0cyBzdWNoIGFzIGNsdXN0ZXJzIG9yIHRyYWplY3Rvcmllcy4gQmF0Y2ggZWZmZWN0cyBhcmUgaGFuZGxlZCBleHBsaWNpdGx5IHVzaW5nIGJsb2NraW5nIHRlcm1zIG9yIHZpYSBhIG1ldGEtYW5hbHlzaXMgYWNyb3NzIGJhdGNoZXMuIFdlIGRvIG5vdCB1c2UgdGhlIGNvcnJlY3RlZCB2YWx1ZXMgZGlyZWN0bHkgaW4gZ2VuZS1iYXNlZCBhbmFseXNlcywgZm9yIHZhcmlvdXMgcmVhc29uczoKPgo+SXQgaXMgdXN1YWxseSBpbmFwcHJvcHJpYXRlIHRvIHBlcmZvcm0gREUgYW5hbHlzZXMgb24gYmF0Y2gtY29ycmVjdGVkIHZhbHVlcywgZHVlIHRvIHRoZSBmYWlsdXJlIHRvIG1vZGVsIHRoZSB1bmNlcnRhaW50eSBvZiB0aGUgY29ycmVjdGlvbi4gVGhpcyB1c3VhbGx5IHJlc3VsdHMgaW4gbG9zcyBvZiB0eXBlIEkgZXJyb3IgY29udHJvbCwgaS5lLiwgbW9yZSBmYWxzZSBwb3NpdGl2ZXMgdGhhbiBleHBlY3RlZC4KPgo+VGhlIGNvcnJlY3Rpb24gZG9lcyBub3QgcHJlc2VydmUgdGhlIG1lYW4tdmFyaWFuY2UgcmVsYXRpb25zaGlwLiBBcHBsaWNhdGlvbnMgb2YgY29tbW9uIERFIG1ldGhvZHMgbGlrZSBlZGdlUiBvciBsaW1tYSBhcmUgdW5saWtlbHkgdG8gYmUgdmFsaWQuCj4KPkJhdGNoIGNvcnJlY3Rpb24gbWF5IChjb3JyZWN0bHkpIHJlbW92ZSBiaW9sb2dpY2FsIGRpZmZlcmVuY2VzIGJldHdlZW4gYmF0Y2hlcyBpbiB0aGUgY291cnNlIG9mIG1hcHBpbmcgYWxsIGNlbGxzIG9udG8gYSBjb21tb24gY29vcmRpbmF0ZSBzeXN0ZW0uIFJldHVybmluZyB0byB0aGUgdW5jb3JyZWN0ZWQgZXhwcmVzc2lvbiB2YWx1ZXMgcHJvdmlkZXMgYW4gb3Bwb3J0dW5pdHkgZm9yIGRldGVjdGluZyBzdWNoIGRpZmZlcmVuY2VzIGlmIHRoZXkgYXJlIG9mIGludGVyZXN0LiBDb252ZXJzZWx5LCBpZiB0aGUgYmF0Y2ggY29ycmVjdGlvbiBtYWRlIGEgbWlzdGFrZSwgdGhlIHVzZSBvZiB0aGUgdW5jb3JyZWN0ZWQgZXhwcmVzc2lvbiB2YWx1ZXMgcHJvdmlkZXMgYW4gaW1wb3J0YW50IHNhbml0eSBjaGVjay4KPgo+SW4gYWRkaXRpb24sIHRoZSBub3JtYWxpemVkIHZhbHVlcyBpbiBTQ1QgYW5kIGludGVncmF0ZWQgYXNzYXlzIGRvbid0IG5lY2Vzc2FyeSBjb3JyZXNwb25kIHRvIHBlci1nZW5lIGV4cHJlc3Npb24gdmFsdWVzIGFueXdheSwgcmF0aGVyIGNvbnRhaW5pbmcgcmVzaWR1YWxzIChpbiB0aGUgY2FzZSBvZiB0aGUgc2NhbGUuZGF0YSBzbG90IGZvciBlYWNoKS4KCiMjIyMjIyMjSVMgU0NUUkFOU0ZPUk0gTU9SRSBST0JVU1QgRk9SIERJRkZFUkVOVCBTRVFVRU5DSU5HIERFUFRIUz8/IyMjIyMjIyMjCgoKTG9hZCA0IHBvcHVsYXRpb25zIGludG8gc2luZ2xlIHNldXJhdCBvYmplY3QKCgpTRVQgU0VFRD8/Pz8/ISEhISEKCiMgU2V0IGdsb2JhbCB2YXJpYWJsZXMKYGBge3J9CnByb2plY3ROYW1lIDwtICJtc0FnZ3Jfc2N0IgpqYWNrc3RyYXcuZGltIDwtIDQwCmBgYAoKCgpgYGB7cn0Kc291cmNlKCJtc0FnZ3JfQW5hbHlzaXNDb2RlL3JlYWRfMTBYR2Vub21pY3NfZGF0YS5SIikKCmBgYAoKCmBgYHtyfQpzZXR3ZCgiLi4vY2VsbFJhbmdlci8iKSAjIHRlbXBvcmFyaWx5IGNoYW5naW5nIHdkIG9ubHkgd29ya3MgaWYgeW91IHJ1biB0aGUgZW50aXJlIGNodW5rIGF0IG9uY2UKZGF0YV9maWxlLmxpc3QgPC0gcmVhZF8xMFhHZW5vbWljc19kYXRhKHNhbXBsZS5saXN0ID0gYygiTFNLbTIiLCAiQ01QbTIiLCAiTUVQbSIsICJHTVBtIikpCm9iamVjdC5kYXRhIDwtUmVhZDEwWChkYXRhX2ZpbGUubGlzdCkKYGBgCgoKCmBgYHtyfQpzZXVyYXQub2JqZWN0PC0gQ3JlYXRlU2V1cmF0T2JqZWN0KGNvdW50cyA9IG9iamVjdC5kYXRhLCBtaW4uY2VsbHMgPSAzLCBtaW4uZ2VuZXMgPSAyMDAsIHByb2plY3QgPSBwcm9qZWN0TmFtZSkKYGBgCgpDbGVhbiB1cCB0byBmcmVlIG1lbW9yeQoKYGBge3J9CnJlbW92ZShvYmplY3QuZGF0YSkKYGBgCgoKQWRkIG1pdG9jaG9uZHJpYWwgbWV0YWRhdGEgYW5kIHBsb3Qgc29tZSBiYXNpYyBmZWF0dXJlcwpgYGB7cn0Kc2V1cmF0Lm9iamVjdFtbInBlcmNlbnQubXQiXV0gPC0gUGVyY2VudGFnZUZlYXR1cmVTZXQoc2V1cmF0Lm9iamVjdCwgcGF0dGVybiA9ICJebXQtIikKVmxuUGxvdChzZXVyYXQub2JqZWN0LCBmZWF0dXJlcyA9IGMoIm5GZWF0dXJlX1JOQSIsICJuQ291bnRfUk5BIiwgInBlcmNlbnQubXQiKSwgbmNvbCA9IDMsIHB0LnNpemUgPSAwLCBmaWxsLmJ5ID0gJ29yaWcuaWRlbnQnLCApCmBgYAoKCmBgYHtyIGZpZy53aWR0aD00LCBmaWcuaGVpZ2h0PTJ9CnBsb3QxIDwtIEZlYXR1cmVTY2F0dGVyKHNldXJhdC5vYmplY3QsIGZlYXR1cmUxID0gIm5Db3VudF9STkEiLCBmZWF0dXJlMiA9ICJwZXJjZW50Lm10IiwgZ3JvdXAuYnkgPSAib3JpZy5pZGVudCIsIHB0LnNpemUgPSAwLjAxKQpwbG90MiA8LSBGZWF0dXJlU2NhdHRlcihzZXVyYXQub2JqZWN0LCBmZWF0dXJlMSA9ICJuQ291bnRfUk5BIiwgZmVhdHVyZTIgPSAibkZlYXR1cmVfUk5BIiwgZ3JvdXAuYnkgPSAib3JpZy5pZGVudCIsIHB0LnNpemUgPSAwLjAxKQpwbG90MSArIHBsb3QyCmBgYApyZW1vdmUgbG93IHF1YWxpdHkgY2VsbHMgKioKcmVxdWlyZTogbkZlYXR1cmVfUk5BIGJldHdlZW4gMjAwIGFuZCA0MDAwIChpbmNsdXNpdmUpCi0tcmVxdWlyZTogcGVyY2VudC5tdCA8NS0tPz8/CgpcKiogSW4gcHJldmlvdXMgcnVuIGl0J3MgcG9zc2libGUgdGhhdCB3ZSdsbCBuZWVkIHRvIGxpbWl0IHBlcmNlbnQubXQgYmVjYXVzZSBvZiBNRVBtIHdlaXJkbmVzcy4gV2lsbCBoYXZlIHRvIHNlZSBpZiB0aGUgYWRkaXRpb25hbCAyMDAwIE1FUG0gY2VsbHMgZm91bmQgYnkgY2VsbHJhbmdlciB2NgoKYGBge3J9CnByaW50KHBhc3RlKCJvcmlnaW5hbCBvYmplY3Q6IiwgbnJvdyhzZXVyYXQub2JqZWN0QG1ldGEuZGF0YSksICJjZWxscyIsIHNlcCA9ICIgIikpCnNldXJhdC5vYmplY3QgPC0gc3Vic2V0KHNldXJhdC5vYmplY3QsIAoJCQkJCQkJCQkJCQlzdWJzZXQgPSBuRmVhdHVyZV9STkEgPj0yMDAgJiAKCQkJCQkJCQkJCQkJCW5GZWF0dXJlX1JOQSA8PSA0MDAwCgkJCQkJCQkJCQkJCSkKcHJpbnQocGFzdGUoIm5ldyBvYmplY3Q6IiwgbnJvdyhzZXVyYXQub2JqZWN0QG1ldGEuZGF0YSksICJjZWxscyIsIHNlcCA9ICIgIikpCnNldXJhdC5vYmplY3QgPC0gUGVyY2VudGFnZUZlYXR1cmVTZXQoc2V1cmF0Lm9iamVjdCwgcGF0dGVybiA9ICdebXQtJywgY29sLm5hbWUgPSAicGVyY2VudC5tdCIpCmBgYAoKCiMjIFNhdmUgYmFzZSBvYmplY3QKYGBge3J9CnNhdmVSRFMoc2V1cmF0Lm9iamVjdCwgZmlsZSA9ICJtc0FnZ3JfcmF3U2V1cmF0LnJkcyIpCmBgYAoKCiMjIFNDVHJhbnNmb3JtCgpBcyBwcmV2aW91c2x5IG1lbnRpb25lZCwgYFNDVHJhbnNmb3JtKClgIGlzIGJlc3QgZm9yIGJhdGNoIGNvcnJlY3Rpb24sIHdoZXJlYXMgYE5vcm1hbGl6ZURhdGEoKWAsIGBTY2FsZURhdGEoKWAsIGFuZCBgRmluZFZhcmlhYmxlRmVhdHVyZXMoKWAgYXJlIGJlc3QgZm9yIERHRS4gSSdtIHN0cnVnZ2xpbmcgdG8gbWFrZSBzdGFibGUgY2x1c3RlcnMsIHNvIEknbSBqdW1waW5nIGFoZWFkIHRvIGBTQ1RyYW5zZm9ybSgpYC4gIApJdCBkb2VzIGFwcGVhciB0aGF0IGBTQ1RyYW5zZm9ybSgpYCBkYXRhIGFyZSBzdG9yZWQgaW4gdGhlIFNDVCBhc3NheSBzbG90LCB3aGljaCBkb2VzIG5vdCBvdmVyd3JpdGUgb3RoZXIgbm9ybWFsaXphdGlvbiBzbG90cy4gSXQgd2lsbCBiZWNvbWUgdGhlIGRlZmF1bHQgc2xvdCBvbmNlIHBvcHVsYXRlZC4KCmBgYHtyfQpzZXVyYXQub2JqZWN0IDwtIFNDVHJhbnNmb3JtKHNldXJhdC5vYmplY3QsIAoJCQkJCQkJCQkJCQkJCSBtZXRob2QgPSAiZ2xtR2FtUG9pIiwgCgkJCQkJCQkJCQkJCQkJIHZhcnMudG8ucmVncmVzcyA9IGMoIm5Db3VudF9STkEiLCAibkZlYXR1cmVfUk5BIikKCQkJCQkJCQkJCQkJCQkgKSAjIG1ldGhvZCA9ICJnbG1HYW1Qb2kiIHNwZWVkcyBwcm9jZXNzCmBgYAoKClRhZGEhIE5vdyBsZXRzIGRvIHNvbWUgcGxvdHRpbmcgYW5kIGNsdXN0ZXJpbmchCgpsaW5lYXIgZGltZW5zaW9uYWwgcmVkdWN0aW9uLiBEZWZhdWx0IGFyZSBiYXNlZCBvbiBWYXJpYWJsZUZlYXR1cmVzLCBidXQgY2FuIGJlIGNoYW5nZWQKCmBgYHtyfQpzZXVyYXQub2JqZWN0IDwtIFJ1blBDQShzZXVyYXQub2JqZWN0LCBmZWF0dXJlcyA9IFZhcmlhYmxlRmVhdHVyZXMob2JqZWN0ID0gc2V1cmF0Lm9iamVjdCksIHZlcmJvc2UgPSBGQUxTRSkKYGBgCgoKYGBge3IgZmlnLndpZHRoPTQsIGZpZy5oZWlnaHQ9NH0KVml6RGltTG9hZGluZ3Moc2V1cmF0Lm9iamVjdCwgZGltcyA9IDE6NiwgbmZlYXR1cmVzID0gMTAsIHJlZHVjdGlvbiA9ICJwY2EiLCBuY29sID0gMikKYGBgCgpEaW1QbG90IGNvbG9yZWQgYnkgb3JpZy5pZGVudApgYGB7cn0KRGltUGxvdChzZXVyYXQub2JqZWN0LCByZWR1Y3Rpb24gPSAicGNhIiwgZ3JvdXAuYnkgPSAib3JpZy5pZGVudCIpCmBgYAoKYGBge3J9CnNvdXJjZSgibXNBZ2dyX0FuYWx5c2lzQ29kZS9QZXJjZW50VmFyaWFuY2UuUiIpCmBgYAoKYGBge3IsIGZpZ3VyZXMtc2lkZSwgZmlnLnNob3c9J2hvbGQnLCBvdXQud2lkdGg9IjUwJSJ9CkVsYm93UGxvdChzZXVyYXQub2JqZWN0LCBuZGltcyA9IDUwKQpwZXJjZW50LnZhcmlhbmNlKHNldXJhdC5vYmplY3RAcmVkdWN0aW9ucyRwY2FAc3RkZXYpCmBgYAojIFZhcmlhbmNlIGRlc2NyaWJlZCBieSBkaW1lbnNpb25hbGl0eQpOdW1iZXIgb2YgUENzIGRlc2NyaWJpbmcgWCUgb2YgdmFyaWFuY2UKCmBgYHtyfQp0b3QudmFyIDwtIHBlcmNlbnQudmFyaWFuY2Uoc2V1cmF0Lm9iamVjdEByZWR1Y3Rpb25zJHBjYUBzdGRldiwgcGxvdC52YXIgPSBGQUxTRSwgcmV0dXJuLnZhbCA9IFRSVUUpCnBhc3RlMCgiTnVtIHBjcyBmb3IgODAlIHZhcmlhbmNlOiIsIGxlbmd0aCh3aGljaChjdW1zdW0odG90LnZhcikgPD0gODApKSkKcGFzdGUwKCJOdW0gcGNzIGZvciA4NSUgdmFyaWFuY2U6IiwgbGVuZ3RoKHdoaWNoKGN1bXN1bSh0b3QudmFyKSA8PSA4NSkpKQpwYXN0ZTAoIk51bSBwY3MgZm9yIDkwJSB2YXJpYW5jZToiLCBsZW5ndGgod2hpY2goY3Vtc3VtKHRvdC52YXIpIDw9IDkwKSkpCnBhc3RlMCgiTnVtIHBjcyBmb3IgOTUlIHZhcmlhbmNlOiIsIGxlbmd0aCh3aGljaChjdW1zdW0odG90LnZhcikgPD0gOTUpKSkKCmBgYAoKIyBEaW0zMwoKQ292ZXIgOTUlIHZhcmlhYmlsaXR5CgpgYGB7cn0KbmRpbSA8LSAzMwpgYGAKCgpgYGB7cn0Kc2V1cmF0Lm9iamVjdCA8LSBSdW5VTUFQKHNldXJhdC5vYmplY3QsIGRpbXMgPSAxOm5kaW0pCnNldXJhdC5vYmplY3QgPC0gRmluZE5laWdoYm9ycyhzZXVyYXQub2JqZWN0LCBkaW1zID0gMTpuZGltKQpmb3IoeCBpbiBjKDAuNSwgMSwgMS41LCAyLCAyLjUpKXsKCXNldXJhdC5vYmplY3QgPC0gRmluZENsdXN0ZXJzKHNldXJhdC5vYmplY3QsIHJlc29sdXRpb24gPSB4KQp9CmBgYApQbG90dGluZy4uLgoKCmBgYHtyfQpmb3IgKG1ldGEuY29sIGluIGNvbG5hbWVzKHNldXJhdC5vYmplY3RAbWV0YS5kYXRhKSl7CglpZihncmVwbChwYXR0ZXJuID0gKCJTQ1Rfc25uX3JlcyIpLCB4ID0gbWV0YS5jb2wpPT1UUlVFKXsKCQlteXBsb3QgPC0gRGltUGxvdChzZXVyYXQub2JqZWN0LCAKCQkJCQkJCQkJCQlncm91cC5ieSA9IG1ldGEuY29sLAoJCQkJCQkJCQkJCXJlZHVjdGlvbiA9ICJ1bWFwIiwgCgkJCQkJCQkJCQkJY29scyA9IGNvbG9yUmFtcHM6OnByaW1hcnkuY29sb3JzKG4gPSBsZW5ndGgobGV2ZWxzKHNldXJhdC5vYmplY3RAbWV0YS5kYXRhW1ttZXRhLmNvbF1dKSkpCgkJCQkJCQkJCQkJKSArIAoJCQlnZ3RpdGxlKHBhc3RlMCgibXNBZ2dyIHNjdCBkaW0zMSByZXMiLCBnc3ViKCJTQ1Rfc25uX3JlcyIsICIiLCBtZXRhLmNvbCkgKSkKCQlwbG90KG15cGxvdCkKCX0KfQpgYGAKCgoKCmBgYHtyfQpzYXZlUkRTKHNldXJhdC5vYmplY3QsIGZpbGUgPSAibXNBZ2dyX3NjdGRpbTMzLnJkcyIpCmBgYAoKIyMgRXZhbHVhdGUgY2x1c3RlciBzdGFiaWxpdHkKTXVzdCBlbnN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgY2x1c3RlciBzdGFiaWxpdHksIHRoYXQgaXMsIGNlbGxzIHRoYXQgc3RhcnQgaW4gdGhlIHNhbWUgY2x1c3RlciB0ZW5kIHRvIHN0YXkgaW4gdGhlIHNhbWUgY2x1c3Rlci4gSWYgeW91ciBkYXRhIGlzIG92ZXItY2x1c3RlcmVkLCBjZWxscyB3aWxsIGJvdW5jZSBiZXR3ZWVuIGdyb3Vwcy4KCkZvbGxvd2luZyBbdGhpcyB0dXRvcmlhbCBieSBNYXR0IE8uXS5odHRwczovL3Rvd2FyZHNkYXRhc2NpZW5jZS5jb20vMTAtdGlwcy1mb3ItY2hvb3NpbmctdGhlLW9wdGltYWwtbnVtYmVyLW9mLWNsdXN0ZXJzLTI3N2U5M2Q3MmQ5Mi4KCiMjIyBDbHVzdHJlZQpQcmV2aW91c2x5IG15IGZhdm91cml0ZSBoYXMgYmVlbiBDbHVzdHJlZSwgd2hpY2ggZ2l2ZXMgYSBuaWNlIHZpc3VhbApOQjogRm9yIHNvbWUgcmVhc29uIGBjbHVzdHJlZTo6Y2x1c3RyZWUoKWAgZGlkbid0IHdvcmssIHdoZXJlYXMgYGxpYnJhcnkoY2x1c3RyZWUpYCBmb2xsb3dlZCBieSBgY2x1c3RyZWUoKWAgZGlkLgoKYGBge3IgZmlnLmhlaWdodD01fQpjbHVzdHJlZShzZXVyYXQub2JqZWN0LCBwcmVmaXggPSAiU0NUX3Nubl9yZXMuIiwgbm9kZV9jb2xvdXIgPSAic2MzX3N0YWJpbGl0eSIpICsgCglzY2FsZV9jb2xvcl9jb250aW51b3VzKGxvdyA9ICdyZWQzJywgaGlnaCA9ICd3aGl0ZScpCmBgYAoKQmFzaWNhbGx5IG5vIHN0YWJpbGl0eSBkaWZmZXJlbmNlIGNvbXBhcmVkIHRvIGJlZm9yZS4KCgoKCgojIERpbTIyCgpDb3ZlciA5MCUgdmFyaWFiaWxpdHkKCmBgYHtyfQpuZGltIDwtIDIyCmBgYAoKCmBgYHtyfQpzZXVyYXQub2JqZWN0IDwtIFJ1blVNQVAoc2V1cmF0Lm9iamVjdCwgZGltcyA9IDE6bmRpbSkKc2V1cmF0Lm9iamVjdCA8LSBGaW5kTmVpZ2hib3JzKHNldXJhdC5vYmplY3QsIGRpbXMgPSAxOm5kaW0pCmZvcih4IGluIGMoMC41LCAxLCAxLjUsIDIsIDIuNSkpewoJc2V1cmF0Lm9iamVjdCA8LSBGaW5kQ2x1c3RlcnMoc2V1cmF0Lm9iamVjdCwgcmVzb2x1dGlvbiA9IHgpCn0KYGBgClBsb3R0aW5nLi4uCgpgYGB7cn0KRGltUGxvdChzZXVyYXQub2JqZWN0LCBncm91cC5ieSA9ICJvcmlnLmlkZW50IiwgcmVkdWN0aW9uID0gInVtYXAiKQpgYGAKCgoKYGBge3J9CmZvciAobWV0YS5jb2wgaW4gY29sbmFtZXMoc2V1cmF0Lm9iamVjdEBtZXRhLmRhdGEpKXsKCWlmKGdyZXBsKHBhdHRlcm4gPSAoIlNDVF9zbm5fcmVzIiksIHggPSBtZXRhLmNvbCk9PVRSVUUpewoJCW15cGxvdCA8LSBEaW1QbG90KHNldXJhdC5vYmplY3QsIAoJCQkJCQkJCQkJCWdyb3VwLmJ5ID0gbWV0YS5jb2wsCgkJCQkJCQkJCQkJcmVkdWN0aW9uID0gInVtYXAiLCAKCQkJCQkJCQkJCQljb2xzID0gY29sb3JSYW1wczo6cHJpbWFyeS5jb2xvcnMobiA9IGxlbmd0aChsZXZlbHMoc2V1cmF0Lm9iamVjdEBtZXRhLmRhdGFbW21ldGEuY29sXV0pKSkKCQkJCQkJCQkJCQkpICsgCgkJCWdndGl0bGUocGFzdGUwKCJtc0FnZ3Igc2N0IGRpbSIsIG5kaW0sICJyZXMiLCBnc3ViKCJTQ1Rfc25uX3JlcyIsICIiLCBtZXRhLmNvbCkgKSkKCQlwbG90KG15cGxvdCkKCX0KfQpgYGAKCgpgYGB7cn0KZmF2LmdlbmVzIDwtIGMoIkdhdGExIiwgIkdhdGEyIiwgIlBmNCIsICJEbnR0IiwgIk1wbyIsICJNZWlzMSIsICJJcmY4IiwgIkVsYW5lIiwgIkZsaTEiLCAiWmZwbTEiLCAicHJvYyIpCmBgYAoKYGBge3J9CkZlYXR1cmVQbG90KHNldXJhdC5vYmplY3QsIGZlYXR1cmVzID0gZmF2LmdlbmVzLCBuY29sID0gMykKYGBgCgoKCmBgYHtyfQpzYXZlUkRTKHNldXJhdC5vYmplY3QsIGZpbGUgPSBwYXN0ZTAoIm1zQWdncl9zY3RkaW0iLCBuZGltLCAiLnJkcyIpKQpgYGAKCiMjIEV2YWx1YXRlIGNsdXN0ZXIgc3RhYmlsaXR5Ck11c3QgZW5zdXJlIHdlIGhhdmUgdGhlIHJpZ2h0IGNsdXN0ZXIgc3RhYmlsaXR5LCB0aGF0IGlzLCBjZWxscyB0aGF0IHN0YXJ0IGluIHRoZSBzYW1lIGNsdXN0ZXIgdGVuZCB0byBzdGF5IGluIHRoZSBzYW1lIGNsdXN0ZXIuIElmIHlvdXIgZGF0YSBpcyBvdmVyLWNsdXN0ZXJlZCwgY2VsbHMgd2lsbCBib3VuY2UgYmV0d2VlbiBncm91cHMuCgpGb2xsb3dpbmcgW3RoaXMgdHV0b3JpYWwgYnkgTWF0dCBPLl0uaHR0cHM6Ly90b3dhcmRzZGF0YXNjaWVuY2UuY29tLzEwLXRpcHMtZm9yLWNob29zaW5nLXRoZS1vcHRpbWFsLW51bWJlci1vZi1jbHVzdGVycy0yNzdlOTNkNzJkOTIuCgojIyMgQ2x1c3RyZWUKUHJldmlvdXNseSBteSBmYXZvdXJpdGUgaGFzIGJlZW4gQ2x1c3RyZWUsIHdoaWNoIGdpdmVzIGEgbmljZSB2aXN1YWwKTkI6IEZvciBzb21lIHJlYXNvbiBgY2x1c3RyZWU6OmNsdXN0cmVlKClgIGRpZG4ndCB3b3JrLCB3aGVyZWFzIGBsaWJyYXJ5KGNsdXN0cmVlKWAgZm9sbG93ZWQgYnkgYGNsdXN0cmVlKClgIGRpZC4KCmBgYHtyIGZpZy5oZWlnaHQ9NX0KY2x1c3RyZWUoc2V1cmF0Lm9iamVjdCwgcHJlZml4ID0gIlNDVF9zbm5fcmVzLiIsIG5vZGVfY29sb3VyID0gInNjM19zdGFiaWxpdHkiKSArIAoJc2NhbGVfY29sb3JfY29udGludW91cyhsb3cgPSAncmVkMycsIGhpZ2ggPSAnd2hpdGUnKQpgYGAKCkhhcmQgdG8gdGVsbCBpZiBkaW0zMyBvciBkaW0yMiBpcyBiZXR0ZXIsIGJ1dCBpZiAqZmVlbHMqIGxpa2UgZGltMjIgaGFzIGxlc3MgY3Jvc3Mtb3ZlciBiZXR3ZWVuIHJlczAuNSBhbmQgcmVzMS4wLiBXaWxsIGNvbnRpbnVlIGF0IGRpbTIyLCBhbmQgc2VlIGhvdyB0aGluZ3MgY2hhbmdlIGJldHdlZW4gcmVzMC41IGFuZCByZXMxLjAgCgpgYGB7cn0KIyBOdW1iZXIgb2YgZmlsdGVyZWQgY2VsbHMgbGVmdCBpbiBlYWNoIHBvcApzYXBwbHkoYygiTFNLbTIiLCAiQ01QbTIiLCAiTUVQbSIsICJHTVBtIiksIGZ1bmN0aW9uKHgpIChjKG5yb3coc2V1cmF0Lm9iamVjdEBtZXRhLmRhdGFbc2V1cmF0Lm9iamVjdEBtZXRhLmRhdGEkb3JpZy5pZGVudCA9PSB4LF0pKSkpCmBgYAojIyBNaXRvQyBpbiAKCmBgYHtyfQpmb3IgKHggaW4gYygiTFNLbTIiLCAiQ01QbTIiLCAiTUVQbSIsICJHTVBtIikpewoJaCA9IGhpc3Qoc2V1cmF0Lm9iamVjdEBtZXRhLmRhdGFbc2V1cmF0Lm9iamVjdEBtZXRhLmRhdGEkb3JpZy5pZGVudCA9PSB4LCAncGVyY2VudC5tdCddLCBicmVha3MgPSAzMCwgcGxvdCA9IEZBTFNFKQoJaCRkZW5zaXR5ID0gaCRjb3VudHMvc3VtKGgkY291bnRzKSoxMDAKCXBsb3QoaCxmcmVxPUZBTFNFLCBtYWluID0gIHBhc3RlKHgsICJwZXJjZW50IG1pdG9DIiksIHhsYWIgPSAicGVyY2VudCBtaXRvQyIsIHlsYWIgPSAiRnJlcXVlbmN5IikKfQpgYGAKCiMgV2h5IGFyZSBjbHVzdGVycyBzbyB1bnN0YWJsZT8KRGlmZmVyZW5jZXMgY291bGQgaW5jbHVkZToKKiBjZWxscyBpbiBlYWNoIHBvcHVsYXRpb24gKGNlbGxyYW5nZXIgdjYgaW5jbHVkZXMgbW9yZSBjZWxscyB0aGFuIGNlbGxyYW5nZXIgdjEsIGVzcGVjaWFsbHkgaW4gTUVQKQoqIC0tZGltZW5zaW9uYWxpdHkgaXMgaW5jb3JyZWN0LS0KKiBTY2FsZURhdGEgZGlkbnQgYWNjb3VudCBmb3IgcmVncmVzc2lvbiBmYWN0b3JzIChlLmcuLCAibkNvdW50c19STkEiIG9yICJuRmVhdHVyZXNfUk5BIikKKiBJbmNvcnJlY3Qgbm9ybWFsaXphdGlvbi9zY2FsaW5nIG1ldGhvZAoqIC0tQ2x1c3RlcmluZyBpcyB0b28gc3RyaWN0IG9yIG5vdCBzdHJpY3QgZW5vdWdoLS0KKiBuZWlnaGJvcmhvb2QgYW5hbHlzaXMgdXNlZCB3cm9uZyBwYXJhbWV0ZXJzCiogU2hvdWxkIGluY2x1ZGUgbWl0b0MgZmlsdGVyICh0aGVyZSdzIGEgY2h1bmsgb2YgTUVQIHcvIG1pdG9DIEAgfjQwJSkKKiAtLVNDVHJhbnNmb3JtIGFjY291bnRzIGJldHRlciBmb3Igc291cmNlcyBvZiB2YXJpYWJpbGl0eS0tCgojIFJlZ3Jlc3Mgb3V0IGNlbGwgY3ljbGUKT25lIHRoaW5nIEkndmUgcHJvYmFibHkgZG9uZSBpbiB0aGUgcGFzdCBpcyByZWdyZXNzIG91dCBjZWxsIGN5Y2xlIGZhY3RvcnMuIERpZCBub3QgZG8gdGhhdCBoZXJlLiBSZXBlYXQgYW5hbHlzaXMgYnV0IGluY2x1ZGUgY2VsbCBjeWNsZSByZWdyZXNzaW9uLiAgCkNlbGwgY3ljbGUgc2NvcmluZyBjb21lcyBhZnRlciBgUnVuUENBKClgCgpTdGVwIDE6IGxvYWQgaW4gcmF3IG9iamVjdApgYGB7cn0Kc2V1cmF0Lm9iamVjdCA8LSByZWFkUkRTKCJtc0FnZ3JfcmF3U2V1cmF0LnJkcyIpCmBgYAoKU2luY2UgYFNDVHJhbnNmb3JtKClgIGlzIGJlc3QgZm9yIGRpZmZlcmVudCBjb3JyZWN0aW5nIGRpZmZlcmVudCBzZXF1ZW5jaW5nIGRlcHRocywgZ29pbmcgdG8gc3RpY2sgd2l0aCB0aGF0CgpUaGUgW0NlbGwgQ3ljbGUgUmVncmVzc2lvbiBWaWduZXR0ZV0oaHR0cHM6Ly9zYXRpamFsYWIub3JnL3NldXJhdC9hcnRpY2xlcy9jZWxsX2N5Y2xlX3ZpZ25ldHRlLmh0bWwpIHNheXMgdG8gZG8gYE5vcm1hbGl6ZURhdGEoKWAsIGBGaW5kVmFyaWFibGVGZWF0dXJlcygpYCwgYFNjYWxlRGF0YSgpYCwgYFJ1blBDQSgpYCwgYENlbGxDeWNsZVNjb3JpbmcoKWAsIHRoZW4gYFJ1blBDQSgpYCB3aXRoIHMuZ2VuZXMgYW5kIGcybS5nZW5lcy4gSXQgc2VlbXMgdG8gYmUgbW9yZSBjb21wbGljYXRlZCB3aXRoIGBTQ1RyYW5zZm9ybSgpYCBiZWNhdXNlIHlvdSBkb24ndCB3YW50IHRvIG5vcm1hbGl6ZSBub3JtYWxpemVkIGRhdGEsIGJ1dCB5b3UgbmVlZCBub3JtYWxpemVkIGRhdGEgdG8gcHJvcGVybHkgcnVuIGBDZWxsQ3ljbGVTY29yaW5nKClgLiBGb3VuZCBkaXNjdXNzaW9uIGJvYXJkIGFuZCBbdGhpc10oaHR0cHM6Ly9naXRodWIuY29tL3NhdGlqYWxhYi9zZXVyYXQvaXNzdWVzLzE2NzkjaXNzdWVjb21tZW50LTU1Nzc4MTgzOCkgaXMgdGhlIGFuc3dlciB0aGF0IG1ha2VzIHRoZSBtb3N0IHNlbnNlIHRvIG1lCgpgYGB7ciByZXN1bHRzPSdhc2lzJ30KIyBub3JtYWxpemUgZGF0YSB3aXRoIFNDVHJhbnNmb3JtKCkKc2FtcGxlIDwtIFNDVHJhbnNmb3JtKAogIHNhbXBsZSwKICBhc3NheSA9ICdSTkEnLAogIG5ldy5hc3NheS5uYW1lID0gJ1NDVCcsCiAgdmFycy50by5yZWdyZXNzID0gYygncGVyY2VudC5tdCcsICduRmVhdHVyZV9STkEnLCAnbkNvdW50X1JOQScpCikKCiMgcGVyZm9ybSBjZWxsIGN5Y2xlIGFuYWx5c2lzIChtYWtlIHN1cmUgdG8gc3BlY2lmeSB0aGUgImFzc2F5IiBwYXJhbWV0ZXIKc2FtcGxlIDwtIENlbGxDeWNsZVNjb3JpbmcoCiAgc2FtcGxlLAogIHMuZmVhdHVyZXMgPSBzLmdlbmVzLAogIGcybS5mZWF0dXJlcyA9IGcybS5nZW5lcywKICBhc3NheSA9ICdTQ1QnLAogIHNldC5pZGVudCA9IFRSVUUKKQoKIyBub3JtYWxpc2UgYWdhaW4gYnV0IHRoaXMgdGltZSBpbmNsdWRpbmcgYWxzbyB0aGUgY2VsbCBjeWNsZSBzY29yZXMKc2FtcGxlIDwtIFNDVHJhbnNmb3JtKAogIHNhbXBsZSwKICBhc3NheSA9ICdSTkEnLAogIG5ldy5hc3NheS5uYW1lID0gJ1NDVCcsCiAgdmFycy50by5yZWdyZXNzID0gYygncGVyY2VudC5tdCcsICduRmVhdHVyZV9STkEnLCAnbkNvdW50X1JOQScsICdTLlNjb3JlJywgJ0cyTS5TY29yZScpCikKYGBgCgpzbyBsZXQncyB0cnkgdGhpcwoKYGBge3J9CnNldXJhdC5vYmplY3QgPC0gU0NUcmFuc2Zvcm0oc2V1cmF0Lm9iamVjdCwgYXNzYXkgPSAnUk5BJywgbmV3LmFzc2F5Lm5hbWUgPSAiU0NUIiwgbWV0aG9kID0gImdsbUdhbVBvaSIsIHZhcnMudG8ucmVncmVzcyA9IGMoIm5GZWF0dXJlX1JOQSIsICJuQ291bnRfUk5BIikpCmBgYAoKQ2VsbCBjeWNsZSBzY29yaW5nCmBgYHtyfQpzZXVyYXQub2JqZWN0IDwtIENlbGxDeWNsZVNjb3Jpbmcoc2V1cmF0Lm9iamVjdCwgcy5mZWF0dXJlcyA9IGNjLmdlbmVzJHMuZ2VuZXMsIGcybS5mZWF0dXJlcyA9IGNjLmdlbmVzJGcybS5nZW5lcywgYXNzYXkgPSAnU0NUJywgc2V0LmlkZW50ID0gRkFMU0UpCmBgYAoKCgoK